#include "ConfMgr.h"
#include "const.h"
#include <QFile>
#include <QDir>
#include <QMessageBox>
#define WARNING(text) QMessageBox::warning(nullptr, "", text)

using namespace utils;

bool ConfMgr::readVideoConfig(QStringList &out)
{
    return read(utils::Path::VideoConfig, out);
}

bool ConfMgr::writeVideoConfig(QStringList &in)
{

    return write(utils::Path::VideoConfig, in);
}

bool ConfMgr::read(const QString &filePath, QStringList &out)
{
    // 判断文件是否存在
    QFile fp(filePath);
    if (!fp.open(QIODevice::ReadOnly)) {
        fp.close();
        WARNING("ERROR: Read Config");
        return false;
    }
    QString data(fp.readAll());
    QStringList l(data.split("\n"));
    for (QString s : l) {
        out << s;
    }
    fp.close();
    return true;
}

bool ConfMgr::write(const QString &filePath, QStringList &in)
{
    // 判断目录是否存在
    QDir dp(utils::Path::ConfigDirPath);
    if (!dp.exists()) {
        if (!dp.mkpath(utils::Path::ConfigDirPath)) {
            WARNING("ERROR: Make Path");
            return false;
        }
    }
    // 判断文件打开是否成功
    QFile fp(filePath);
    if (!fp.open(QIODevice::WriteOnly)) {
        fp.close();
        WARNING("ERROR: Write Config");
        return false;
    }
    QString data(in.join("\n"));
    fp.write(data.toUtf8());
    fp.close();
    return true;
}
